package com.kaifamiao.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

public class CollectionTest2 {

	public static void main(String[] args) {
		
		// 从 JDK 1.7 开始支持 钻石运算符 (菱形语法)
		Collection<String> c = new ArrayList<>() ;
		c.add( "唐三藏" );
		c.add( "孙悟空" ); 
		c.add( "白龙马" ); 
		c.add( "猪八戒" );
		c.add( "沙悟净" );
		
		Collection<String> t = new ArrayList<>() ;
		t.add( "孙悟空" ); 
		t.add( "猪八戒" );
		t.add( "沙悟净" );
		t.add( "清风" );
		t.add( "明月" );
		
		// 判断 c 对应的集合中是否包含 t 集合中所有的元素
		System.out.println( c.containsAll( t ) );
		
		Collection<String> x = new ArrayList<>() ;
		// 将 c 集合中的所有元素全部添加到 x 集合中
		x.addAll( c );
		System.out.println( x );
		
		// 删除 x 集合中 与 t 集合共有的元素
		x.removeAll( t );
		System.out.println( x );
		
		System.out.println( c );
		// 保留 c 集合中 与 t 集合共有的元素，删除 c 集合中其它元素
		c.retainAll( t );
		System.out.println( c );
		
		// 根据 c 集合中所包含的元素返回一个新的数组
		Object[] array = c.toArray();
		System.out.println( Arrays.toString( array ) );
		
		String[] names = {};
		// 根据参数的类型返回相应类型的数组(该数组中包含了集合中所有的元素)
		String[] arr = c.toArray( names );
		System.out.println( arr == names );
		System.out.println( Arrays.toString( arr ) );
		
	}

}
